Swing Application Framework
The Swing Application Framework (JSR 296) is a Java specification for providing a simple application framework for Swing applications. It defines infrastructure common to most desktop applications, making Swing applications easier to create.
Features
The JSR 296 specification defines the basic structure of a Swing application. It defines a framework as a small set of extensible classes that define infrastructure common to most desktop applications:
- Management of application life-cycle, startup and shutdown,
- Support for loading localized resources,
- Persistent session state,
- Support for loosely coupling Actions to their presentation.
Status and Roadmap
Development on an open source Reference Implementation called appframework was begun in 2006.[1] It was originally expected that this implementation would be the means for integrating JSR 296 into the upcoming Java SE 7 (Dolphin) version of the Java programming language, and the project was scheduled to be included in milestone 5 of the JDK7 development. However, in August 2009, it was announced that the project would not be included due to an inability to reconcile design flaws and achieve consensus among the JSR 296 team before the milestone 5 deadline.[2]
The original Swing Application Framework implementation has been put on hold indefinitely.[3] The last public release of the appframework project is version 1.03.[1]
Forks and Alternatives
Several forks of the original implementation have been started by open source communities, and several other application framework libraries have been created to achieve goals similar to those of JSR 296.
- Better Swing Application Framework
- The Better Swing Application Framework project, or BSAF, is a fork of version 1.03 of the original appframework project. BSAF was created at Project Kenai in September 2009 and is currently the most active of the forks. Its goals are to eliminate bugs and execute small design fixes on the original appframework implementation while maintaining compatibility with version 1.03.[4]
- Guice Utilities & Tools Set
- The Guice Utilities & Tools Set, or GUTS, is an implementation of JSR 296 that combines the appframework with the Google Guice Dependency Injection library. Like BSAF, it is also hosted at Project Kenai. Unlike BSAF, GUTS is making a break away from the "problematic singleton"[5][6] pattern. This project began in June 2009, and is currently active.[7]
- Swing Application Framework Fork
- The Swing Application Framework Fork, or SAFF, is a fork of appframework 1.03. It is currently hosted at GitHub. This project has been dormant since October 2009.[8]
- TreasureMap
- TreasureMap is a library providing standalone use of appframework 1.03's ResourceMap implementation.[9]
- NetBeans Platform
- NetBeans Platform robust Swing application framework, with many more features as well as much more documentation.[10]
See also
External links
References
- ^ a b appframework appframework: Swing Application Framework, https://appframework.dev.java.net/ appframework
- ^ Potochkin, Alexander, SAF and JDK7, http://weblogs.java.net/blog/archive/2009/08/19/saf-and-jdk7
- ^ Potochkin, Alexander, The alternative Swing frameworks, http://weblogs.java.net/blog/alexfromsun/archive/2009/11/16/other-swing-frameworks
- ^ Better Swing Application Framework, http://kenai.com/projects/bsaf
- ^ Hans Muller "Swan Song", https://appframework.dev.java.net/servlets/ReadMsg?list=users&msgNo=1567
- ^ JSR 296 "From the Trenches", http://jfpoilpret.googlepages.com/JSR-296-from-the-trenches-08-2008.pdf
- ^ Guice Utilities & Tools Set, http://kenai.com/projects/guts
- ^ Swing Application Framework Fork, http://github.com/hamnis/SAFF
- ^ TreasureMap, http://github.com/dteoh/treasuremap
- ^ NetBeans Platform, http://netbeans.org/kb/trails/platform.html